The present invention relates to network systems and in particular to file sharing with a peer-to-peer network.
Peer-to-peer (P2P) is a communications model in which each party has the same capability and any party can initiate a communication session with another party on the P2P network. In some implementations, P2P communications is implemented by giving each communication node both server and client functionality. In a specific application, P2P has come to describe applications in which user can use the Internet to exchange files with each other directly or through a mediating server.
On the Internet, P2P can be viewed as a type of transient network that allows a group of users to connect with each other and access files from one another's systems. Napster and Gnutella are popular examples of this class of P2P software. To participate in a P2P network, the user must download and install a P2P networking program (P2P browser). The P2P browser allows the user to communicate with other P2P browsers in the P2P network, via a suitable P2P protocol. The user thus becomes a P2P node on the network.
In a “pure” P2P network, the constituent components comprise of only the users. File sharing is achieved by determining the nodes presently on the P2P network, and communication with each such node to identify the list of available files. Initially, a peer user must explicitly access another peer that is online. For example, a Web site can provided with IP addresses of other peer machines. When the user “connects” to another live machine (i.e., one that is executing the P2P program), that other live machine then tells the other peers that it has already established contact with about the new peer. Each of those peers then tell peers they know about, who tell other peers and so on. Alternatively, rather than “pushing” information out, the user's P2P program can “pull” in information about connected peers. Thus, the user's machine can obtain from the other machine a list of peers that it knows about. The user's machine can then query the other machines to identify still other machines on the P2P network, and so on. In this way, a peer can become aware of the other peers in the P2P network.
To facilitate file sharing, a “hybrid” P2P network can be configured. File sharing in a “hybrid” P2P network involves the user specifying which of her files from her computer (local computer) are to be shared P2P network, and uploading information about those files to a management (index) server. The information typically includes file location (e.g., IP address of the local computer, the directory in which each file is located, etc.) and indexing information which might include file name, file type, and so on. The most popular of such hybrid P2P networks was Napster, which utilized a central index server.
Another P2P user can then perform a search in the management server (via his P2P browser) of the file information maintained in the management server. The user then can then access the file from the file owner's computer, based on file location information obtained from the management server.
Some roadblocks to the widespread use of the P2P network paradigm are apparent, aside from certain legal implications. For example, accessing a P2P network requires that each system downloads and install P2P access software, a requirement which people may be reluctant to meet. A reason for the reluctance may be the additional processing load imposed on a machine acting as a P2P node. A more serious concern is that each hardware platform that can access the Internet is a prime candidate as a P2P node, requiring software to be developed for that platform. In addition to the conventional PC (personal computer), other Internet-ready devices include cell phones, automobile navigation systems, personal data accessories, and so on. P2P may not be appropriate for mobile terminal where computing capacity is insufficient; e.g., insufficient bandwidth to handle the flow of information needed to be a peer in the network, insufficient memory or storage capacity to serve files, and generally insufficient capacity to provide complex P2P processing to support other peer members.
It can be appreciated then that there is a need to facilitate access to and participation in a P2P network.